认证会员项目show|让4个步进电机演奏《波尔卡舞曲》
前言
柴火认证会员是指通过柴火新一代信息技术培训课程并通过项目认证,或符合条件直接通过认证的会员群体。更多关于认证会员信息,戳此了解。
今天的【柴火认证会员项目show】栏目,柴火菌跟大家分享柴火认证会员梁乐彬的造物项目《步进电机机械乐队》,感谢开源分享。Open source is love.
梁乐彬
会员编号:CHSZ20200002015
专业背景:农业机械化及自动化
服务行业:/
就读学校:华南农业大学
DIY创意制作,嵌入式开发,硬件PCB设计,BOULKOO团队创始人
认证信息
认证项目:步进电机机械乐队
项目简介:用四个步进电机和arduino完成的开源项目,将电脑MidiEditor软件中的midi信号输出到串口,不同通道对应不同前缀。不同声部的arduino控制板RX连在一起,当收到自己的前缀就读取,并且完成相应的任务。通过在电脑MidiEditor软件上进行编曲,每个步进电机发出不同的音调。这个项目只是冰山一角,将电脑的midi软件和Arduino连接起来的玩法还有很多。不同的轨道,不一定要接一个步进电机来播放音乐,甚至可以安装一个小舵机摇动沙锤,从而组成一个多种多样的电子机械乐队。
点击此处前往b站观看项目视频
以下为项目教程
1.项目材料
42 步步进电机*4
Arduino Nano 板*4
Arduino Leonardo 板*1
步进电机驱动板*4 (TB6560)
12v5a 开关电源
5v3a 开关电源
市电 220v 电源线接口
10a 保险丝及保险丝座
洞洞板
导线若干
木板
纸板
KT 板
M3 螺丝
2.硬件制作
首先购入了四个拆机 42 步-步进电机,焊接了接口的连接线。
焊接分机板,将四个 Nano通过排插安装在洞洞板上,将 VCC GND RX 连接在一 起。每个 Nano 的Pin7用作频率输出引脚,(这个可以自行更换,但要在程序里更改)。
成品图:
找到了一块木板,定好每个模块的位置,定点打孔固定下来
注:一开始我们打算用轧带将电机固定在木板上面,但是最终发现效果并不好,电机的震动会导致木板的共振,虽然声音很大声但是导致某些音调不清晰或者变调。所以我们后面采用的分体式的共鸣盒设计。
用作开关电源和电源连接线插座。
制作纸板共鸣盒,这个可以按照电机和你作品的大小自行设计尺寸。
没有共鸣盒时测试的图片,之后发现多个电机不同通道一起震动最后和木板一起震动,导致出来的音调都有问题,而且木板上其他元件的震动会产生其他噪声,所以最后我们选择不让木板震动,单独让电机和共鸣盒震动。
每个纸盒下方用 KT 板作为缓冲减震材料,然后热熔胶固定在木板上。
总体电路连接图:
模块与步进电机的连接:步进电机的 A+对应模块的 A+,A-对 A-,B+对 B+,B-对B-。模块的另一端只需要将电源并联起来,将 nano 板的信号线连接到模块的CLK+,即完成模块与控制板,驱动模块与步进电机的连接。
最终成品照片:
3.软件编程
3.1 Arduino 程序编写
首先,介绍在 Nano 板上的程序。整个程序原理其实就是在 TX 接收 midi 指令,然后通过函数解析指令,并向指定引脚使用 Tone 函数,将不同音符的曲调和它对应的频率相对于。然后在引脚发出对应频率的方波脉冲。
箭头 1 是不同音符对应的不同的 频率表,
箭头 2 是我们定义的连接状态 LED 灯标配引脚 13
箭头 3 是我们设定的方波脉冲接口引脚 7
#define myChannel 0x06 是我们定义这一个 Nano 是对应 midi 文件 6 号轨道
所以其实一共可以 16 个轨道同时进行,只不过这个会有点庞大。这个项目里我们运用到 4 个不同的 nano,所以分别在下载程序时更改
#define myChannel 0x00
#define myChannel 0x02
#define myChannel 0x04
#define myChannel 0x06 (在尝试很多次后,发现写这几个双数,少一点出错)
Leonard 板的程序就相对简单了,Leonard 板其实在整个硬件中作为一个转发者的作 用。将 USB 传来的Midi命令,转发到 TX 串口上。这样每个 Nano 都可以听到了。
为什么需要用到 Leonard 板呢?是因为 Leonard 板有个模拟USB 的功能,所以它可以通过 MidiUSB 库来让自己被电脑软件识别为 MIDI 输出设备,并且通过主函数的解析MIDI 指令包,将读取到的指令全部转发到另一个串口上。(一个串口被用来与电脑通讯,另一个被用来与 Nano 通讯)
最主要的是串口之间的频率要弄清楚。这个程序可以直接下载到 Leonard 板上。
3.2 电脑端控制软件
电脑端控制软件: MIDIeditor,下载一个这个软件。
上各大 midi 音乐共享网站,下载你喜欢的歌曲,建议是分开两个到四个轨道的。也可以之后熟悉了软件自己重新修改音乐的轨道(PS:基本都要重新改轨道下)
(推荐:http://www.midishow.com/midi/browse/classical-music)
这里随便打开了个 midi 文件,第一次打开这个,我们将编写好程序的 Leonard 板连 接电脑,打开软件 Midi-Setting
在这个框里面如果有个 Arduino Leonard ,勾选它然后软件就会自动连接到板子 上,自然会到主页面播放 midi 文件,就会发送 midi 指令到 leonard 板上。
4.最后
如果你也想自己试着做这个项目,我在这里把会用到的软件和代码以及一些已经处理好的 MIDI 文件开源公布出来。文件获取方法,微信公众号后台回复关键词“唱歌”即可获得。
当然这个项目只是冰山一角,将电脑的 midi 软件和 Arduino 连接起来的玩法还有很多。不同的轨道,不一定要接一个步进电机来播放音乐,甚至可以安装一个小舵机摇动沙锤,从而组成一个多种多样的电子机械乐队。
我们希望这个教程可以帮助到有需要的人,激发更多的想象与创造。
👇👇👇
获取更多项目灵感
宅家硬核DIY系列:
开放科技助力抗“疫”系列:
🤖️🤖️🤖️
读完上文,你可能会有疑问,如何成为柴火认证会员?
申请柴火认证会员,目前有两条渠道:
如果你有技术背景,可通过提交项目直接申请认证;
如果你是技术小白,欢迎报名参加『柴火新一代信息技术』培训,通过结业项目进行认证;
写在最后-文末小广告
特大好消息!『柴火新一代信息技术』硬件开发入门第二期培训班(开班时间:6月20-21日,周末),现启动报名啦!通过这个培训,你可以:
通过课程设计的70%实操,动手造物,搭建项目原型,入门硬件开发
三证加持,拿到柴火创客空间颁发的培训证书&国家工信部教育与考试中心颁发的专项技术中级证书,以及柴火认证会员证书
背靠柴火近10年国际创客社区资源积累,融入国际创客社区圈子
扫码报名
点击上图,前往了解更多培训招生详情
----END----
Chaihuo x.factory|深圳,河北